package DAO;

import java.util.HashMap;
import java.util.List;
import java.util.Map;
import Beans.Vendedor;
import Beans.Categoria;
import Exceptions.wrongCatException;
/**
 *
 * @author Daniel
 */
public class vendedorDAO extends objetoDAO {
    	private final int posicaoCategoria = 2;
	private final int posicaoCodigo = 0;
	private final int posicaoNome = 1;
	private static Map<String,Vendedor> vendedores = new HashMap<String,Vendedor>();
	
	private Categoria catToEnum(String str) throws wrongCatException {
		Categoria categoria = null;
		switch(str){
			case "1":
				categoria = Categoria.CAT1;
			break;
			case "2":
				categoria = Categoria.CAT2;
			break;
			default:
				throw new wrongCatException("Erro! Categoria incorreta! Opções: '1' e '2'");
		}
		return categoria;
	}
	
	protected void criaObjeto(List<String[]> entradaOrdem) throws wrongCatException {
		for(String[] strs : entradaOrdem){
			Categoria categoria = catToEnum(strs[posicaoCategoria]);
			Vendedor vendedor = new Vendedor(strs[posicaoCodigo], strs[posicaoNome], categoria, null); //(o null é relacionado ao List<Venda> vendas)
			if(!vendedores.containsKey(vendedor.getCodigo())){
				vendedores.put(vendedor.getCodigo(), vendedor);
			}
                        else {                                       //atualizando vendedor existente
				Vendedor updateVendedor = vendedores.get(vendedor.getCodigo());
				updateVendedor.setNome(vendedor.getNome());
				updateVendedor.setCategoria(vendedor.getCategoria());
			}
                }
	}

        public vendedorDAO() {
        }

        public int getPosicaoCategoria() {
            return posicaoCategoria;
        }

        public int getPosicaoCodigo() {
            return posicaoCodigo;
        }

        public int getPosicaoNome() {
            return posicaoNome;
        }
        
	public static Map<String, Vendedor> getVendedores() {
		return vendedores;
	}

	public static void setVendedores(Map<String, Vendedor> vendedores) {
		vendedorDAO.vendedores = vendedores;
	}
}